package com.alander.nexusgo.itinerary.service;

import com.alander.nexusgo.common.model.dto.ItineraryDetailListDTO;
import com.alander.nexusgo.common.model.vo.ItineraryDetailVO;
import com.alander.nexusgo.itinerary.model.entity.ItineraryDetail;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author alander
*/
public interface ItineraryDetailService extends IService<ItineraryDetail> {
    /**
     * 创建行程详情
     * @param itineraryDetail 行程详情信息
     * @param userId 用户ID
     * @return 行程详情VO
     */
    ItineraryDetailVO createItineraryDetail(ItineraryDetail itineraryDetail, Long userId);

    /**
     * 更新行程详情
     * @param id 行程详情ID
     * @param itineraryDetail 更新的行程详情信息
     * @param userId 用户ID
     * @return 行程详情VO
     */
    ItineraryDetailVO updateItineraryDetail(Long id, ItineraryDetail itineraryDetail, Long userId);

    /**
     * 删除行程详情
     * @param id 行程详情ID
     * @param userId 用户ID
     * @return 是否删除成功
     */
    boolean deleteItineraryDetail(Long id, Long userId);

    /**
     * 获取行程详情
     * @param id 行程详情ID
     * @return 行程详情VO
     */
    ItineraryDetailVO getItineraryDetailById(Long id);

    /**
     * 查询行程详情列表
     * @param itineraryDetailListDTO 查询条件
     * @return 行程详情VO列表
     */
    List<ItineraryDetailVO> listItineraryDetails(ItineraryDetailListDTO itineraryDetailListDTO);
}